/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package camada.bancodedados.daoimplemente.estado;

import camada.bancodedados.conexao.Conexao;
import camada.negocio.dao.estado.EstadoDAO;
import eloma.classe.estado.Estado;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Icaro
 */
public class EstadoDAOImpl implements EstadoDAO {

    private static Connection con;
    PreparedStatement stmt = null;
    ResultSet rs = null;

    @Override
    public List<Estado> buscaTodos() throws Exception {

        try {

            String SQL_SCRIPT = "Select * from Estado order by idEstado";

            con = Conexao.getCon();
            con.setAutoCommit(false);

            stmt = con.prepareStatement(SQL_SCRIPT);
            rs = stmt.executeQuery();

            con.commit();

        } catch (SQLException sqle) {
            con.rollback();
        } catch (Exception e) {
            con.rollback();
        }

        return carregarMultiplosResultados(rs);

    }

    public List<Estado> carregarMultiplosResultados(ResultSet rs) throws SQLException {
        List<Estado> resultList = new ArrayList<Estado>();
        while (rs.next()) {
            Estado dto = new Estado();
            carregarVO(dto, rs);
            resultList.add(dto);
        }
        return resultList;
    }

    private void carregarVO(Estado dto, ResultSet rs) throws SQLException {
        try {

            dto.setIdEstado(rs.getInt("idEstado"));
            dto.setEstado(rs.getString("estado"));
            dto.setSigla(rs.getString("sigla"));
            dto.setPercIcms(rs.getInt("percentualICMS"));
            dto.setCodIbge(rs.getInt("codibge"));

        } catch (Exception e) {

        }
    }


}
